// 入口函数
$(function() {
    // 初始化文章列表  因为添加,修改,删除后都要重新渲染页面,
    // 渲染列表 用全局函数因为后面要用
    let layer = layui.layer
    initArtcateList()
        // 渲染用户信息列表
    function initArtcateList() {
        // 获取
        // 发送xios
        axios({
            method: 'GET',
            url: '/my/article/cates'
        }).then(function(res) {
            // console.log(res);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            // 成功后直接渲染
            // 创建一个空数组
            let arr = []
                // 遍历每个data的值
            res.data.data.forEach(function(index) {

                    // 添加到数组的后面
                    arr.push(`
                <tr>
                    <td>${index.Id}</td>
                    <td>${index.name}</td>
                    <td>${index.alias}</td>
                    <td>
                    <button data-id="${index.Id}" class="btn-edit layui-btn layui-btn-xs">编辑</button>
                    <button data-id="${index.Id}" class="del-edit layui-btn layui-btn-danger layui-btn-xs ">删除</button>
                    </td>
                 </tr>
                
                `)
                })
                // 循环外面,进行赋值 铺设到tbody上
            $('tbody').empty().html(arr.join(''))

        })
    }

    let indexAdd = 0
        // 点击添加类别 弹出添加类别对话框
    $('#addBtn').click(function() {
            indexAdd = layer.open({
                title: '在线调试',
                type: 1,
                area: ['500px', '260px'],
                content: `
            <form id="addForm" class="layui-form" action="">
                 <div class="layui-form-item">
                     <label class="layui-form-label">分类名称</label>
                     <div class="layui-input-block">
                         <input type="text" name="name" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
                     </div>
                 </div>
                 <div class="layui-form-item">
                     <label class="layui-form-label">分类别名</label>
                     <div class="layui-input-block">
                         <input type="text" name="alias" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
                     </div>
                 </div>
                 <div class="layui-form-item">
                     <div class="layui-input-block">
                     <button class="layui-btn" lay-submit lay-filter="formDemo">确认添加</button>
                     <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                     </div>
                 </div>
             </form>

            `
            });
        })
        // 提交事件绑定 添加信息 添加到网页上
        // 因为form是动态创建的 所以需要事件委托绑定
    $('body').on('submit', '#addForm', function(e) {
        e.preventDefault()
            // alert('111');
            // 发送xios
        axios({
            method: 'POST',
            url: '/my/article/addcates',
            data: $(this).serialize()
        }).then(function(res) {
            console.log(res);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }

            layer.msg('恭喜您,添加成功')
                // 重新渲染页面
            initArtcateList()
                // 清空表单信息 可以不写
            $('#addForm')[0].reset()
            layer.close(indexAdd)
        })

    })







    //  点击 编辑  修改,修改弹出层     
    let indexEdit = 0
    $('tbody').on('click', '.btn-edit', function() {
        // 点击编辑按钮做两件事 1.弹出层
        indexEdit = layer.open({
            title: '修改文章类别',
            type: 1,
            area: ['500px', '260px'],
            content: `
            <form  lay-filter="editForm" id="editForm" class="layui-form" action="">

            <!--0.赋值id,写在form表单里面 设置隐藏域 -->
            <input type="hidden" name='Id'>
            
            <!--1.分类名称 -->
                 <div class="layui-form-item">
                     <label class="layui-form-label">分类名称</label>
                     <div class="layui-input-block">
                         <input type="text" name="name" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
                     </div>
                 </div>
                 <!--1.分类别名 -->
                 <div class="layui-form-item">
                     <label class="layui-form-label">分类别名</label>
                     <div class="layui-input-block">
                         <input type="text" name="alias" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
                     </div>
                 </div>
                 <!--3.确认提交 -->
                 <div class="layui-form-item">
                     <div class="layui-input-block">
                     <button class="layui-btn" lay-submit lay-filter="formDemo">确认添加</button>
                     <button type="reset" class="layui-btn layui-btn-primary">重置</button>

                     </div>
                 </div>
             </form>

            `
        })


        let form = layui.form
            // 修改分类弹出层 2.赋值
            // (获取数据,和渲染数据,要写到.btn-edit的点击事件里面)
        let id = $(this).attr('data-id')
            // alert(id);
        axios({
            method: 'GET',
            //  /:id  动态参数(路由参数)
            // 特点: / 不能省略   :一定要去掉  id是动态变化的
            url: '/my/article/cates/' + id,
        }).then(function(res) {
            // console.log(res.data);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            // 赋值 成功后渲染
            layui.form.val('editForm', res.data.data)
        })


    })

    // 点击修改事件 修改内容 
    $('body').on('submit', '#editForm', function(e) {
        e.preventDefault()
            // alert('111');
            // 发送xios
            // 修改分类
        axios({
            method: 'POST',
            url: '/my/article/updatecate',
            data: $(this).serialize()
        }).then(function(res) {
            console.log(res);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }

            layer.msg('恭喜您,修改成功')
                // 重新渲染页面
            initArtcateList()
                // 清空表单信息 可以不写
                // $('#addForm')[0].reset()
            layer.close(indexEdit)
        })

    })

    // 点击删除按钮 删除事件
    $('body').on('click', '.del-edit', function() {
        let id = $(this).attr('data-id')
            // alert(id);

        layer.confirm('is not?', { icon: 3, title: '提示' }, function(index) {
            //do something
            // 发送axios
            axios({
                url: '/my/article/deletecate/' + id
            }).then(function(res) {
                if (res.data.status !== 0) {
                    return layer.msg(res.data.message)
                }
                layer.msg('恭喜您,删除文章成功')
                initArtcateList()

                // 退出
                layer.close(index);
            })

        });



    });


})